import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 666
 * Date: 2022-11-30
 * Time: 10:30
 */
public class test {
}
/*
定义一个长方形类Rectangle，拥有长、宽属性，提供构造函数，能够计算周长getPerimeter()和面积getArea()
定义一个子类长方体类，拥有长、宽、高属性，提供构造函数，getPerimeter函数计算所有边的周长，getArea函数计算表面积，新增getVolume函数，计算体积
在main函数中，分别构造长方形类和长方体类的对象，并输出他们的周长、面积、体积，保留两位小数
 */
//class Rectangle{
//    double length;
//    double wide;
//
//
//    public Rectangle() {
//    }
//
//    public Rectangle(double long1, double gua) {
//        this.length = long1;
//        this.wide = gua;
//
//    }
//    public double getPerimeter(){
//        return (length+wide)*2;
//    }
//    public double getArea(){
//        return length*wide;
//    }
//}
//class Cuboid extends Rectangle{
//    double height;
//
//    public Cuboid() {
//    }
//    public Cuboid(double long1, double gua, double height) {
//        super(long1, gua);
//        this.height = height;
//    }
//    public double getPerimeter(){
//        return (height+length+wide)*4;
//    }
//public double getArea(){
//       return (length*height)*2+2*(length*wide)+2*(wide*height);
//}
//public double getVolume(){
//    return length*wide*height;
//}
//}
/*
定义接口或类 Shape，定义求周长的方法length()。
定义如下类，实现接口Shape或父类Shape的方法。
（1）三角形类Triangle （2）长方形类Rectangle （3）圆形类Circle等。
定义测试类ShapeTest，用Shape接口（或类）定义变量shape，用其指向不同类形的对象，
输出各种图形的周长。并为其他的Shape接口实现类提供良好的扩展性。
提示： 计算圆周长时PI取3.14
 */
class ShapeTest{
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){


        }
    }
}
interface Shape{

    void length();
}
 class Triangle implements Shape{
     int a=0;
     int b=0;
     int c=0;

     public Triangle(int a, int b, int c) {
         this.a = a;
         this.b = b;
         this.c = c;
     }

     public int getA() {
         return a;
     }

     public void setA(int a) {
         this.a = a;
     }

     public int getB() {
         return b;
     }

     public void setB(int b) {
         this.b = b;
     }

     public int getC() {
         return c;
     }

     public void setC(int c) {
         this.c = c;
     }

     @Override
     public void length() {
      if(c<=0 || a<=0 || b<=0){
          System.out.println(0);
      }else {
          if(a+b>c && a+c>b && b+c>a){
              System.out.println(a+b+c);
          }else {
              System.out.println(0);
          }
      }
     }
 }
 class Rectangle implements Shape{
     int length;
     int wide;

     public Rectangle(int length, int wide) {
         this.length = length;
         this.wide = wide;
     }

     public int getLength() {
         return length;
     }

     public void setLength(int length) {
         this.length = length;
     }

     public int getWide() {
         return wide;
     }

     public void setWide(int wide) {
         this.wide = wide;
     }

     @Override
     public void length() {
         if(length<=0 || wide <=0){
             System.out.println(0);
         }else {
             System.out.println((wide + length) * 2);
         }    }
 }
 class Circle implements Shape{
int r;

     public Circle(int r) {
         this.r = r;
     }

     public int getR() {
         return r;
     }

     public void setR(int r) {
         this.r = r;
     }

     @Override
     public void length() {
      if(r<=0){
          System.out.println(0);
      }else {
          System.out.println(r*r*3.14);
      }
     }
 }